MPLS is a basic technique supporting the INTRANET and the Internet-Backbone, which technique is in the process of standardization by an MPLS working group of the Internet Engineering Task Force (IETF). MPLS uses a label switching technique having such characteristics as high-speed data transfer, scalability, and easy traffic control. In label switching, the forwarding of a label base and the routing of a network layer are combined, and the forwarding is performed with a label affixed to a packet.
In MPLS, a group of layer 3 packets, which are transmitted by the same method or handling (for example, transmitted on the same path and at the same service class), is defined as a forwarding equivalent class (FEC) and the same label is affixed to packet groups corresponding to FEC.
As to a labeled packet, forwarding of layer 2 can be done by reference to only the label (determining parameters necessary for the layer 2 forwarding, such as path and service class for transmission by FEC corresponding to the label).
A label switching router as a packet relaying system implements label switching. It is important how a label is to be allocated in a packet.
In the Internet Protocol (IP) network which is popular today, connectability is important such that and only one service class (best effort type) has been provided. On the other hand, in MPLS, the transmission of data becomes flexible by combining label-base forwarding and network layer routing. This is very effective in improving Quality of Service (QoS), Traffic Engineering (TE), and Virtual Private Network (VPN).
However, in providing these services, a highly reliable and efficient data transmission becomes very important. The existing routing algorithm is strong and highly reliable but time-consuming (in the order of several seconds to several minutes) in recovery from a fault. To offer a highly reliable service, it is required that the recovery from a fault be done in several ten milliseconds like SONET. MPLS is expected to achieve a protection restoration effect which satisfies such a speed in a IP network.
In an MPLS network, the route is connection-oriented and can be handled as a path. Particularly, packet paths are classified as a working path and a recovery path before fault occurrence. All that is required in the event of fault occurrence is a mere switching from one to another path in accordance with predetermined working and recovery paths so as to avoid the fault promptly. At this time, recovery is effected using a technique called label stack. According to the label stack technique, after rewriting a label, one stage of label is added thereto, and a single packet is transmitted in a two-label multiplexed state. The packet transmission is made by reference to only the last-added label, whereby a virtual tunneling is implemented.
Referring to FIG. 6, in case of data transfer from network N1 to network N3 and from network N2 to network N3, a recovery path (LSR10-LSR60-LSR70-LSR80-LSR30) is ensured and allocated beforehand for a working path (LSR10-LSR20-LSR30), in which LSR means a label switching router. Fine lines connecting between networks and between LSRs represent circuits. As these lines may be ATM lines and PPP over SONET (POS) lines. In case of using ATM lines, VPI/VCI serves as a label within the MPLS network. In case of using POS lines within the MPLS network, a Shim header is affixed to a packet and a label is set within the Shim header. These are the same in the other network diagrams according to the present application.
Now, with reference to FIGS. 7 and 8, the packet transmission in the network shown in FIG. 6 is described. LSR10, using a table (in normal condition) as shown in FIG. 8A, adds label α1 to a packet received from network A and adds label β1 to a packet received from network B. For address information shown in FIG. 8A, IP address is used as an example. Although in FIGS. 6 and 7 LSR10 is shown as an edge node positioned at a boundary of the MPLS network, LSR10 may be a core node positioned at a core of the MPLS network. In this case, the packet inputted to LSR10 is already labeled such that label may be used. LSR10 can be an edge node or a core node. LSR 20, using a table as shown in FIG. 8B, rewrites the label of a packet received from Label Switched Path (LSP) α from α1 to α2 and the label of a packet received from path LSP β from β1 to β2, then transmits them to LSR 30.
For example, if a fault occurs between LSR20 and LSR30, LSR10 detects the fault and with the table (in faulty condition) in FIG. 8A, adds a label (“working label” hereinafter; α2 for LSPα between networks N1 and N3, β2 for LSPβ between networks N2 and N3) which should be added upon arrival at LSR30, then adds thereto a label (“recovery label” hereinafter; P1) with a recovery path as an outgoing path, and transfers the packet in a label-stacked form. Such a packet format is shown in FIG. 11.
In a relay node on the path, the data which has been bypassed to the recovery path is determined for a packet destination with reference only to the recovery label, followed by rewriting of the recovery label affixed to the received packet into a recovery label corresponding to the destination such that the subsequent transmission of the packet has the thus-rewritten recovery label. For example, using the table shown in FIG. 8C, LSR60 rewrites the recovery label from P1 to P2 and transfers the packet with the thus-rewritten recovery label. At a node LSR80 located just before LSR30 a test of the penultimate hop popping (PHP) is performed, whereby a packet having the same label as in normal condition or even in faulty condition is sent. The PHP removes the recovery label at a node just before LSR30.
By implementing the above method, if LSR30 possesses only information for transmitting packets having labels α2 and β2 to the network N3, it is possible to process the packets regardless of whether the working condition is normal or faulty. It is thus possible to decrease the amount of information to be held within the system.
The above is a 1:1 configuration. FIG. 9 shows a recovery method expended from the 1:1 configuration to a 1:N configuration. The 1:1 configuration indicates a redundancy configuration wherein one recovery path is allocated for one working path, which provides a highly reliable network because a recovery path is ensured for each working path. On the other hand, the 1:N configuration indicates a redundancy configuration wherein one recovery path is shared by N number of working paths. Since plural working paths share a single recovery path, the cost is reduced as compared with the 1:1 redundancy configuration.
In FIG. 9, traffic passing from network N1 to network N3 through LSR20, traffic passing from network N2 to network N3 through LSR20, traffic passing from network N1 to network N3 through LSR70, and traffic passing from network N2 to network N3 through LSR70, are assumed to be LSPα, LSPβ, LSPγ, and LSPδ, respectively. LSPα and LSPβ pass through a working path LSR10-LSR20-LSR30, while LSPγ and LSPδ pass through a working path LSR10-LSR40-LSR50-LSR30, and a single recovery path LSR10-LSR60-LSR70-LSR80-LSR30 is allocated beforehand for those plural working paths. At this time, as shown in FIG. 10, the labels of packets passing through LSPα, LSPβ, LSPγ, and LSPδ are rewritten like α1->α2, β1- >β2, γ1>γ2->γ3, and δ1->δ2->δ3 at relay nodes on the working paths, and the packet with the thus-rewritten labels are transmitted. For LSR10 and the relay nodes on the working paths, the same tables in FIGS. 8A and 8B may be used, respectively.
For example, if a fault occurs between LSR20 and LSR30, LSR10 detects the fault and thereafter adds working labels (α2 for LSPα, β2 for LSPβ) which should be added upon arrival at LSR30. LSR10 further adds a recovery label (P1) with the recovery path as an outgoing path and transmits the thus-labeled packets in a label-stacked form. Likewise, in the event of occurrence of a fault between LRR50 and LSR30, LSR10 detects the fault and thereafter adds working labels (γ3 for LSPγ, δ3 for LSPδ) and further adds a recovery label (P1), then transmits the thus-labeled packets in a label stack form. These packet formats are as shown in FIG. 12. With respect to the data bypassed via the recovery path, as is the case with 1:1 configuration, only the upper recovery label is rewritten to P2 and P3 during transmission. Then, through PHP, the packets with the same labels as in normal condition or even in faulty condition arrive at LSR30. For the relay node on the recovery path, the same as that shown in the table of FIG. 8C may be used.
According to this method, if LSR30 possesses only information for transmitting the packets with labels α2, β2, γ3, and δ3 to the network N3, it can process the packets irrespective of whether the working condition is normal or faulty.